"""
@name : 9.python下划线
@author : wenyao
@projectname: sanchuanglianxi
"""

class Parent():
    tmp = "tmp"
    _min = 1  #保护属性
    __max = 10  #私有属性

    def __init__(self):
        self.name  = "wen"
        self._sex = "女"
        self.__age = 18  #私有属性

    def __make(self):  #私有方法
        print("这是一个私有方法")
        print(self.__age)

    def _protectmake(self):
        print("这是一个保护方法")

    def show(self):
        # self.__make()
        print("this is show:",self.__max)

class Child(Parent):
    pass
    # def __init__(self):
    #     self.name = "wen2"
    #     self.__age = 29

class Child2(Child):
    pass

#类属性 tmp,_min,__max
#实例属性 name,__age
#子类实例属性有 name, __age
p = Parent()
c1 = Child()
c2 = Child2()

#普通变量
# print(p.tmp, c1.tmp, c2.tmp)
# #访问保护变量
# print(p._sex, p._min, Parent._min)
# print(c1._min,Child._min)
# c1._protectmake()
# c2._protectmake()
#保护对象  就是类对象子类对象自己都能访问的

#双下划线  是一个私有成员，无法像公有成员一样提供访问，只供类内部自己使用
#print(Parent.__max)
#p.show()
#print(p.__max)
#p.__make()

#解释器 定义__max  --》转成了_Parent__max
#max = 1  解释pro_max
#print(max)
# print(p._Parent__max)
# print(c1._Parent__max)
# c2._Parent__make()

#可以更改私有属性
# Parent._Parent__max = 100
# p.show()

#python 下划线是一个"伪私有"

